package com.medusa.aps.business.model.exception;


import com.medusa.aps.business.global.model.exception.Error;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * @author xianhui.yu
 **/
@Getter
@RequiredArgsConstructor
public enum BusinessErrorCode implements Error {

    /**
     * 系统错误
     */
    SYSTEM_ERROR(1000, "系统错误"),

    /**
     * 参数错误
     */
    PARAMETER_ERROR(1001, "参数错误"),

    /**
     * 参数错误
     */
    NOT_NULL_ERROR(1002, "参数不能为空"),

    /**
     * 文件类型错误
     */
    FILE_TYPE_ERROR(1003, "文件类型错误"),

    /**
     * 数据不存在
     */
    DATA_IS_EMPTY(1004, "数据不存在"),

    /**
     * 数据已存在
     */
    DATA_IS_NOT_EMPTY(1005, "数据已存在"),
    /**
     * TOKEN 过期
     */
    AUTHENTICATION_EXPIRED(400001, "认证信息过期, 请重新登录"),
    /**
     * 当前数据已被其它数据占用
     */
    DATA_IS_USED(1007, "数据已被使用"),

    PERMIT_FAIL(400401, "没有相关权限"),

    /**
     * 操作失败，一般用于修改删除，没有成功
     */
    FAIL(1004, "操作失败"),

    /**
     * 获取锁失败
     */
    GET_LOCK_FAIL(1008, "系统异常，请稍后再试！");


    private final Integer code;
    private final String msg;


    @Override
    public int code() {
        return getCode();
    }

    @Override
    public String msg() {
        return getMsg();
    }
}
